package com.play2gether;

import android.annotation.TargetApi;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Created by Raul on 28/03/14.
 */
public class PerfilActivity extends ActionBarActivity implements View.OnClickListener {

    public  Button             btEditar;
    public  TextView           txtNombre;
    public  TextView           txtFecha;
    public  TextView           txtSexo;
    public  TextView           txtNotif;
    public  TextView           txtApodo;
    public  SharedPreferences  preferencias;
    public  String             id;
    private DataBaseManager    manager;
    public  String[]           datos;
    private Cursor             cursor;

    public String[] estado;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.perfil);

        Bundle bundle = getIntent().getExtras();
        id     = bundle.getString("id");
        estado = bundle.getStringArray("estado");

        manager = new DataBaseManager(this);

        configurarVista();
        obtenerDatos();
        configurarNavbar();
    }
    @Override protected void onRestart() {
        super.onRestart();
        obtenerDatos();
    }
    @Override protected void onResume() {
        super.onResume();
    }
    private void obtenerDatos(){
        try {
            cursor = manager.ObtenerPerfil(id);
            if (cursor.moveToFirst()) {
                cursor.moveToFirst();

                int numName = cursor.getColumnIndex("nombre");
                int numFecha = cursor.getColumnIndex("fecha_nacimiento");
                int numSexo = cursor.getColumnIndex("sexo");
                int numNotif = cursor.getColumnIndex("num_sugerencia");
                int numApodo = cursor.getColumnIndex("apodo");

                txtNombre.setText(cursor.getString(numName));
                txtFecha.setText(cursor.getString(numFecha));
                txtSexo.setText(obtenerStringSexo(cursor.getString(numSexo)));
                txtNotif.setText(obtenerStringNumNotificaciones(cursor.getString(numNotif)));
                txtApodo.setText(cursor.getString(numApodo));
            }
        } catch (Exception e) {
            e.printStackTrace();
            Log.e("ERROR", e.getMessage());
        }
    }

    private void configurarVista(){
        btEditar = (Button) findViewById(R.id.btEditarPerfil);
        txtNombre = (TextView) findViewById(R.id.labelNombre);
        txtFecha = (TextView) findViewById(R.id.labelFecha);
        txtSexo = (TextView) findViewById(R.id.labelSexo);
        txtNotif = (TextView) findViewById(R.id.labelNotif);
        txtApodo = (TextView) findViewById(R.id.labelApodo);

        btEditar.setOnClickListener(this);
    }
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    private void configurarNavbar(){
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
        actionBar.setCustomView(R.layout.navbar);

        Button btFormularioNV = (Button) findViewById(R.id.btFormularioNV);
        Button btSugerenciaNV = (Button) findViewById(R.id.btSugerenciaNV);
        Button btOpcionesNV   = (Button) findViewById(R.id.btOpcionesNV);
        Button btLogoNV       = (Button) findViewById(R.id.btLogoNV);
        Button btAtras        = (Button) findViewById(R.id.bt_atras);
        Button btSincronizar  = (Button) findViewById(R.id.bt_sincronizar);

        TextView tituloNav = (TextView) findViewById(R.id.tituloLayout);
        tituloNav.setText("Perfil");

        //Botones para el navbar
        btOpcionesNV.setOnClickListener(this);
        if (!estado[0].equals("2")) {
            btFormularioNV.setAlpha(0);
            btSugerenciaNV.setAlpha(0);
            btSincronizar.setAlpha(0);
        } else {
            btFormularioNV.setOnClickListener(this);
            btSugerenciaNV.setOnClickListener(this);
        }
            btLogoNV.setOnClickListener(this);
            btAtras.setOnClickListener(this);
            btSincronizar.setOnClickListener(this);
            //btAtras.setAlpha(0);
            //btSincronizar.setAlpha(0);
            //btOpcionesNV.setAlpha(0);

        boolean haySugerencias = manager.comprobarSugerencias(id);
        if (haySugerencias){ btSugerenciaNV.setBackground(this.getResources().getDrawable(R.drawable.bt_sugerencias_notificacion)); }
        else { btSugerenciaNV.setBackground(this.getResources().getDrawable(R.drawable.bt_sugerencia_nav)); }

        boolean hayFormularios = manager.comprobarFormularios(id);
        if (hayFormularios){ btFormularioNV.setBackground(this.getResources().getDrawable(R.drawable.bt_formulario_notificacion)); }
        else { btFormularioNV.setBackground(this.getResources().getDrawable(R.drawable.bt_formulario_nav)); }
    }
    @Override
    public void onClick(View v) { //Lo comento para que no pete de mientras lo termino
        Intent intent;
        intent = new Intent();

        switch (v.getId()) {
            //Botones para el natvar
            case R.id.btFormularioNV:
                intent.setClass(this,indexFormularios.class);
                intent.putExtra("id",id);
                intent.putExtra("estado",estado);
                startActivity(intent);
                finish();
                break;
            case R.id.btSugerenciaNV:
                intent.setClass(this,indexSugerencias.class);
                intent.putExtra("id",id);
                intent.putExtra("estado",estado);
                startActivity(intent);
                finish();
                break;
            case R.id.btOpcionesNV:
                intent.setClass(this,menuActivity.class);
                intent.putExtra("id",id);
                intent.putExtra("estado",estado);
                startActivity(intent);
                finish();
                break;
            case R.id.bt_atras:
                finish();
                break;
            case R.id.btLogoNV:
                finish();
                break;
            case R.id.bt_sincronizar:
                sincronizar();
                break;
            case R.id.btEditarPerfil:
                String nombre = txtNombre.getText().toString();
                String fecha  = txtFecha.getText().toString();
                String sexo   = txtSexo.getText().toString();
                String notif  = txtNotif.getText().toString();
                String apodo  = txtApodo.getText().toString();

                intent = intent.setClass(this,PerfilEditarActivity.class);
                intent.putExtra ("nombre",nombre);
                intent.putExtra ("fecha",fecha);
                intent.putExtra ("sexo",sexo);
                intent.putExtra ("notif",notif);
                intent.putExtra ("apodo",apodo);

                intent.putExtra("id",id);
                intent.putExtra("estado",estado);
                startActivity(intent);
                break;
        }
    }
    private String obtenerStringNumNotificaciones(String sugerencias){
        switch (sugerencias){
            case "0": return "";
            case "1": return "Nunca";
            case "2": return "Pocas";
            case "3": return "A veces";
            case "4": return "A menudo";
            case "5": return "Sólo fin de semana";
        }
        return "";
    }
    private String obtenerStringSexo(String s){
        if(s.equals("m")){ return "Mujer";  }
        else             { return "Hombre"; }
    }
    public void sincronizar(){
        Sincronizar sinc = new Sincronizar(id,this);
        sinc.sincronizar();

    };
}
